package les.portal.testes;

import org.hibernate.Session;
import org.hibernate.Transaction;

import junit.framework.TestCase;
import les.portal.negocio.dao.AdministradorDAO;
import les.portal.negocio.to.AdministradorTO;
import les.portal.negocio.to.LoginTO;
import les.portal.util.HibernateUtil;

/**
 * Teste para a classe AdministradorDAO.
 * @author Anne Caroline
 * @author Bruno Coitinho
 * @author Gustavo de Farias
 * @author Maria de Lourdes
 *
 * 
 */
public class AdministradorDAOTest extends TestCase {
	
	public void testCreate() throws Exception {
		Session sessao = HibernateUtil.currentSession();
		AdministradorDAO dao = new AdministradorDAO(sessao);
		
		AdministradorTO  administradorTO = new AdministradorTO();
		
		assertNull(administradorTO.getId());
		assertNull(dao.readAPartirDoNome("Administrador"));
		
		administradorTO.setNome("Administrador");
		LoginTO loginTO = new LoginTO("admin","portal123");
		administradorTO.setLogin(loginTO);
		
		Transaction t = sessao.beginTransaction();
		Integer id1 = dao.create(administradorTO);
		t.commit();
		
		assertEquals(id1, administradorTO.getId());
		assertNotNull(dao.readAPartirDoNome("Adminstrador"));
		assertEquals(id1, dao.read(id1).getId());
		assertEquals("Administrador", dao.read(id1).getNome());
		
		t = sessao.beginTransaction();
		dao.delete(administradorTO);
		t.commit();
		assertNull(dao.readAPartirDoNome("Administrador"));
	}

}
